Google Apps Script webapps
開発時に気をつけること。
Google Apps Script Deploymentsのことを理解しておく。
deployしないと、更新はできない。
dev バージョンなら、同一のurlで開発を継続できるけど、
webhook などで利用する際には、匿名アクセスが必要で、devへのwebアクセスはログイン必須なので、devは使えない。
What
Google Apps Scriptはwebレクエスト(get, post)を受けられる(server)。 clientとしてはurflfetchがある。
複数ページにしたい。Linking to another HTML page in Google Apps Script - Stack Overflow
Why needed
webhookとして使うパターンが多い?
サーバーレスで何かできる形としては、一番楽でよいが、レスポンス速度は期待できない? 他の制限もありそうだが、、
cache戦略は必要。
gcsにgasからファイルを公開して、アクセス耐性100万倍させるゾッと - Qiita
Google Cloud Storageに出せば。 cloud storage側の認証を考える必要があるかな?
How to
公式doc: Web Apps  |  Apps Script  |  Google Developers
コードとして必要なのは、 (doPostかdoGetをもって、htmlやjsonを返す
それで、ウェブアプリケーションとして公開(制限可能)を選ぶ
受け付けるrequestについて
クエリ形式、 payload形式(bodyに入れる)などがあるので、これをパラメータとして処理は書ける
headerにゴニョゴニョ入れる?みたいなものはない???
requestをdebugする. パラメータのdebugなど、まだ、自分は趣旨をclearに理解してないけど
Class ContentService  |  Apps Script  |  Google Developersを使う
https://www.youtube.com/watch?time_continue=13&v=4qMewjnZxPw&feature=emb_logo
認証
ウェブアプレケーションとして導入で設定する際に、ユーザーの制限ができる。
さらに、個別に制限したい場合は、
Limiting Google Apps Script Web app to certain users only - Stack Overflow
session機能があるので、Class Session  |  Apps Script  |  Google Developers
これで、googleアカウント(gmail, G Suite)がとれるので、これで弾けばOKぽい。
あとは、簡易的には、queryのキーで制限も可能。(こういうAPIもそこそこあるし)
JWTを使った認証、apps script側で秘密鍵を持って、みたいなことも可能???
Quota
google apps script - Quota limit for doGet() - Stack Overflow
doGetに関する制限はない。
が、、Exception Messagesで、too many times, too much computer time,, みたいなのは何度かみたことはある。
CORS
XMLHttpRequest通信は可能だが、Optionメソッドがないため、browser側で preflightを出す形にrequestはだめ。
今から10分ではじめる Google Apps Script(GAS) で Web API公開 - Qiita
#CORS
あと、doGet(), doPost()自体が errorを出したときには、、、
JSONを返す
GASへデータをPOSTし結果をjsonで受け取る時はリダイレクトされる - なんも分からないのでしらべた